草庐IT

c++ - CRT 和 WIN32 API

全部标签

c - Windows 驱动程序开发的良好资源

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6年前。Improvethisquestion我是Windows设备驱动程序开发的初学者。到目前为止,我阅读了WindowsInternals一书。我想知道网上有什么好的资源,这样我就可以开始自己编写内核驱动程序了。

C语言,串口阅读器

我想编写一个读取串行端口(V.24)的程序。使用来自串行端口的信息,我需要拆分一个字符串,并将其添加到MySQL数据库中。我不太了解C,所以我需要一些帮助,了解我应该使用哪些函数程序要在windowsXP下运行,我要把它做成服务。谢谢,塞巴斯蒂安 最佳答案 服务很难调试。我建议首先将您的代码编写为普通应用程序-命令行即可-然后,一旦它工作,将其转换为服务(这是一个机械过程)。一般来说,第一次使用C编写的基于WindowsGUI的应用程序是一个PITA。非常挑剔,非常敏感。命令行应用程序或服务会容易得多。

c# - 使用 Windows C# 应用程序将应用程序限制为 32 位架构

我试图将C#应用程序定位到32位架构,但在平台选择列表、属性>构建菜单中,只有“事件(任何CPU)”选项。我正在使用C#2008ExpressEdition。该应用程序在32位平台上构建良好且执行没有问题,但由于组件(Flash内容),在64位平台上运行时失败。我担心问题出在使用express,来自MSDN:"TheVisualStudioExpressEditions,suchasVisualC#Express,donotsupportoptimizationforaspecificCPUtype. ThisissupportedonlyinthefullVisualStudiopr

c - 使用 C 在 Windows 中打印带有千位分隔符的整数

我想这个问题是不言自明的。我正在使用printf和friend(snprintf等)来显示一些在数百万或数十万范围内的内存统计信息。以我懒惰的思维方式读取格式为“1,523,556”的数字比“1523556”容易得多。我已经尝试设置语言环境并在格式说明符(%'d和%'llu)之前使用撇号标志,但撇号显然是SUS的标准,所以它可能对我在Windows下不起作用。是否有特定于Windows的API来执行此操作?我正在使用PellesC并直接使用ANSIC99进行编程。**编辑**阅读答案和相关的MSDN页面后,我明白了为什么.NET是现在Windows编程的首选方法。它简化了大量的API工

c++ - 重叠 I/O : some functions are still missing

我非常喜欢WindowsAPI中的一个东西是重叠I/O。我已经编写了数十个使用重叠I/O(用于套接字和文件)且线程数量有限的网络服务器。我也是一名驱动程序编写者,因此我非常了解重叠I/O是如何“在幕后”实现的。唯一一直困扰我的是一些API函数不支持重叠模式。例如,创建文件(即调用CreateFile)始终同步进行。这很遗憾,因为这些方法也可以支持重叠(异步)模式。例如,当创建(或打开)文件时-文件系统驱动程序收到IRP_MJ_CREATE请求,它可能(通常会)返回STATUS_PENDING.我的问题是:是否可以选择异步打开文件?(但请不要告诉我创建另一个线程来打开文件)。

c++ - 我应该如何在 Win32 C++ 应用程序中集成和打包此第三方库?

我们有一个(非常大的)自定义ActiveX控件的现有代码库,我想集成libkml为了与KMLmap数据交互,而不是重新发明轮子。问题是,我是一个相对较新的Windows开发人员,来自Linux世界,我真的不确定集成第三方库的正确方法是什么。值得庆幸的是,libkml确实提供了用于编译它的MSVCC项目,因此移植不是问题。我想我有几个我能想到的选择:直接构建和链接库。对于“主”项目,我们已经有了一个包含项目文件的解决方案;我可以将libkml项目添加到该解决方案,但我宁愿不这样做。libkml代码相对于我们的应用程序代码发生变化的可能性很小。静态链接到libkmlbuild生成的.lib

c - 检测 Windows 中的总 RAM 变化

如果系统RAM总量发生变化,Windows中是否有回调通知我的应用程序? 最佳答案 如果您可以获取_InstanceCreationEvent,您也许可以通过WMI执行此操作和_InstanceDeletionEvent上课Win32_PhysicalMemory.有示例代码here(WMI不适合在C或C++中使用,抱歉-C#会更容易)。只需在此处使用Win32_PhysicalMemory而不是Win32_Process使您监听的查询:hres=pSvc->ExecNotificationQueryAsync(_bstr_t("W

c - 一个 C 程序演示 cmd.exe 和一个 linux shell 例如bash,定界参数?

我听说cmdshell将整个内容传递给命令,然后标准C库将其分隔,同时考虑空格和引号。而在Linux中,只有shell可以做到这一点。一个带有while循环的程序,显示argsv[i]显示它是如何定界的,但不显示shell做了什么,也没有显示C库做了什么。任何人都可以指出或向我展示一个可以显示它的程序吗? 最佳答案 我想你想知道shell在linux中是如何工作的,对吗?我认为当我们在命令shell上键入任何内容时,shell接收所有参数作为字符串格式的参数,shell然后fork+exec二进制文件并将所有参数作为环境变量传递给新

windows - 如何获取 Spooler API 打印的原始完整文件路径

我想通过使用WindowsSpoolerAPI的独立程序监视系统范围的打印作业,但只能获取打印作业的名称。如何获取具有完整路径的原始文件。 最佳答案 如果您正在寻找原始文档路径(例如您刚刚打印的Word文档的位置),假脱机程序将无法告诉您这一点。假脱机程序通常通过GDI或XPS路径接收文件。有效执行打印的应用程序向假脱机程序发送一系列图形命令(通过适当的设备驱动程序),假脱机程序服务将在发送到打印机之前缓存到一个临时文件中。这意味着假脱机程序本身对原始源文件或其所在位置一无所知。如果您想知道假脱机程序如何获取文档名称,它是通过Sta

c - 如果变体具有 INF 或 NAN 值,如何使变体的 ChangeType float ?

我在变体中有浮点值,最初这个变体是一个bstr类型。我正在使用VariantChangeType更改为浮点类型。然后我从中获取浮点值,然后我将其转换为字节vector格式。如果变体具有浮点值,则可以正常工作。如果变体具有INF值,则VariantChangeType会失败。所以我从variant.fltVal中得到0。如果变体具有INF或NAN值,如何将类型更改为float?我想以浮点形式获取INF或NAN值。Convert(_variant_tvarVal,vectordataArr){HRESULThr=VariantChangeType(varVal&,&varVal,0,VT_